package br.com.pucrs.tcc.controller;

import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import br.com.pucrs.tcc.exception.ResponderInteresseException;
import br.com.pucrs.tcc.rn.ProfessorRN;
import br.com.pucrs.tcc.util.jsf.MensagemUtil;
import br.com.pucrs.tcc.util.jsf.SessionUtil;
import br.com.pucrs.tcc.vo.TrabalhoInteresse;

@ManagedBean(name = "TrabalhoInteresseBean")
@ViewScoped
public class TrabalhoInteresseBean {
	
	
	private List<TrabalhoInteresse> trabalhos;

	@EJB
	private ProfessorRN mProfessorRN;

	public TrabalhoInteresseBean() {

	}

	@PostConstruct
	public void carregaDados() {
		trabalhos = mProfessorRN.listaTrabalhosInteresse(SessionUtil.getMatriculaUsuarioLogado());
	}

	public void informaInteresse(TrabalhoInteresse trabalho, boolean temInteresse) {
		try {
			trabalho.setInteresse(temInteresse);
			trabalho.setMatriculaProfessor(SessionUtil.getMatriculaUsuarioLogado());
			
			if (mProfessorRN.responderTrabalho(trabalho)) {
				trabalhos = mProfessorRN.listaTrabalhosInteresse(SessionUtil.getMatriculaUsuarioLogado());
				MensagemUtil.mostraMensagemSucesso("Resposta salva com sucesso.");	
			}
			else {
				MensagemUtil.mostraMensagemErro("Falha ao responder interesse em trabalho.");
			}
		}catch (ResponderInteresseException e) {
			MensagemUtil.mostraMensagemErro(e.getMessage());
		} catch (Exception e) {
			MensagemUtil.mostraMensagemFatal(e.getMessage());
		}
	}

	public List<TrabalhoInteresse> getTrabalhos() {
		return trabalhos;
	}

	public void setTrabalhos(List<TrabalhoInteresse> trabalhos) {
		this.trabalhos = trabalhos;
	}


}
